<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Castle.Facilities.EventWiring</name>
    </assembly>
    <members>
        <member name="T:Castle.Facilities.EventWiring.EventSubscribers">
            <summary>
              Collects information about subscribers for given event
            </summary>
        </member>
        <member name="T:Castle.Facilities.EventWiring.EventWiringException">
            <summary>
            Exception that is thrown when a error occurs during the Event Wiring process
            </summary>
        </member>
        <member name="M:Castle.Facilities.EventWiring.EventWiringException.#ctor(System.String)">
            <summary>
              Initializes a new instance of the <see cref="T:Castle.Facilities.EventWiring.EventWiringException"/> class.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Castle.Facilities.EventWiring.EventWiringException.#ctor(System.String,System.Exception)">
            <summary>
              Initializes a new instance of the <see cref="T:Castle.Facilities.EventWiring.EventWiringException"/> class.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Castle.Facilities.EventWiring.EventWiringException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
              Initializes a new instance of the <see cref="T:Castle.Facilities.EventWiring.EventWiringException"/> class.
            </summary>
            <param name="info">The object that holds the serialized object data.</param>
            <param name="context">The contextual information about the source or destination.</param>
        </member>
        <member name="T:Castle.Facilities.EventWiring.EventWiringFacility">
            <summary>
              Facility to allow components to dynamically subscribe to events offered by 
              other components. We call the component that offers events publishers and 
              the components that uses them, subscribers.
            </summary>
            <remarks>
              A component that wish to subscribe to an event must use the external configuration
              adding a node <c>subscribers</c> on the publisher. This node can have multiple entries using the 
              <c>subscriber</c> node.
            </remarks>
            <example>
              <para>This example shows two simple components: one is the event publisher and the other is the 
                subscriber. The subscription will be done by the facility, using the publisher associated configuration.</para>
              <para>The Publisher class:</para>
              <code>
                public class SimplePublisher
                {
                public event PublishEventHandler Event;
            
                public void Trigger()
                {
                if (Event != null)
                {
                Event(this, new EventArgs()); 
                }
                }
                }
              </code>
              <para>The Subscriber class:</para>
              <code>
                public class SimpleListener
                {
                private bool _listened;
                private object _sender;
             
                public void OnPublish(object sender, EventArgs e)
                {
                _sender = sender; 
                _listened = sender != null;
                }
             
                public bool Listened
                {
                get { return _listened;	}
                }
             
                public object Sender
                {
                get { return _sender; }
                }
                }
              </code>
              <para>The configuration file:</para>
              <code>
                <![CDATA[
             <?xml version="1.0" encoding="utf-8" ?>
             <configuration>
             	<facilities>
             		<facility 
             			id="event.wiring"
             			type="Castle.Facilities.EventWiring.EventWiringFacility, Castle.Windsor" />
             	</facilities>
             
             	<components>
             		<component 
             			id="SimpleListener" 
             			type="Castle.Facilities.EventWiring.Tests.Model.SimpleListener, Castle.Facilities.EventWiring.Tests" />
             
             		<component 
             			id="SimplePublisher" 
             			type="Castle.Facilities.EventWiring.Tests.Model.SimplePublisher, Castle.Facilities.EventWiring.Tests" >
             			<subscribers>
             				<subscriber id="SimpleListener" event="Event" handler="OnPublish"/>
             			</subscribers>
             		</component>
             	</components>
             </configuration>
             ]]>
              </code>
            </example>
        </member>
        <member name="M:Castle.Facilities.EventWiring.EventWiringFacility.Init">
            <summary>
              Overridden. Initializes the facility, subscribing to the <see cref="E:Castle.MicroKernel.IKernelEvents.ComponentModelCreated"/>,
              <see cref="E:Castle.MicroKernel.IKernelEvents.ComponentCreated"/>, <see cref="E:Castle.MicroKernel.IKernelEvents.ComponentDestroyed"/> Kernel events.
            </summary>
        </member>
        <member name="M:Castle.Facilities.EventWiring.EventWiringFacility.OnComponentCreated(Castle.Core.ComponentModel,System.Object)">
            <summary>
              Checks if the component we're dealing is a publisher. If it is, 
              iterates the subscribers starting them and wiring the events.
            </summary>
            <param name="model">The component model.</param>
            <param name="instance">The instance representing the component.</param>
            <exception cref="T:Castle.Facilities.EventWiring.EventWiringException">When the subscriber is not found
              <br/> or <br/>
              The handler method isn't found
              <br/> or <br/>
              The event isn't found
            </exception>
        </member>
        <member name="T:Castle.Facilities.EventWiring.WireInfo">
            <summary>
              Represents the information about an event.
            </summary>
        </member>
        <member name="M:Castle.Facilities.EventWiring.WireInfo.#ctor(System.String,System.String)">
            <summary>
              Initializes a new instance of the <see cref="T:Castle.Facilities.EventWiring.WireInfo"/> class.
            </summary>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The name of the handler method.</param>
        </member>
        <member name="M:Castle.Facilities.EventWiring.WireInfo.Equals(System.Object)">
            <summary>
              Determines whether the specified <see cref = "T:System.Object"></see> is equal to the current <see
               cref = "T:System.Object"></see>.
            </summary>
            <param name = "obj">The <see cref = "T:System.Object"></see> to compare with the current <see cref = "T:System.Object"></see>.</param>
            <returns>
              true if the specified <see cref = "T:System.Object"></see> is equal to the current <see cref = "T:System.Object"></see>; otherwise, false.
            </returns>
        </member>
        <member name="M:Castle.Facilities.EventWiring.WireInfo.GetHashCode">
            <summary>
              Serves as a hash function for a particular type.
            </summary>
            <returns>
              A hash code for the current <see cref = "T:System.Object"></see>.
            </returns>
        </member>
        <member name="P:Castle.Facilities.EventWiring.WireInfo.EventName">
            <summary>
              Gets the name of the event.
            </summary>
            <value>The name of the event.</value>
        </member>
        <member name="P:Castle.Facilities.EventWiring.WireInfo.Handler">
            <summary>
              Gets the handler method name.
            </summary>
            <value>The handler.</value>
        </member>
        <member name="T:Castle.Facilities.EventWiring.NaiveMethodNameExtractor">
            <summary>
              Extracts MethodInfo of metho invoked in delegate. Based on ILReader class from http://www.gocosmos.org project
            </summary>
        </member>
    </members>
</doc>
